Trong NumPy, Quản lý Độ chính xác là việc lựa chọn cẩn trọng độ sâu bit để cân bằng hiệu quả bộ nhớ với độ chính xác số học. Khác với các số nguyên Python thông thường có độ chính xác tùy ý, NumPy sử dụng kiểu dữ liệu cố định từ C (ví dụ như int32_t, uint64_t).
1. Phân cấp Kiểu dữ liệu
Các kiểu dữ liệu (dtype) của NumPy xác định kích thước bộ nhớ. Trong khi np.int_() cung cấp kích thước phụ thuộc vào nền tảng, các hệ thống ổn định dựa vào Tên gọi kiểu cố định (Bảng: Trang 34) để đảm bảo tính nhất quán trên các thiết bị phần cứng.
- Số nguyên:
int8_t,int16_t,int32_t,int64_t. - Không dấu:
uint8_tđếnuint64_t. - Con trỏ:
intptr_t,uintptr_t.
2. Công cụ Kiểm tra nội tại
Trước khi thực hiện phép toán, hãy sử dụng np.iinfo() và np.finfo() để kiểm tra giới hạn. Ví dụ, 1 + np.finfo(np.longdouble).eps xác định epsilon máy tính—ngưỡng mà các phép cộng không còn làm thay đổi giá trị nữa.
3. Cơ chế của Rò rỉ Dữ liệu
NumPy không phát sinh lỗi khi xảy ra rò rỉ; nó thất bại một cách im lặng. Sử dụng np.power(100, 8, dtype=np.int32) dẫn đến cắt bớt, trong khi float64 chuyển sang inf. Sử dụng np.issubdtype(d, np.floating) để xác minh loại trước khi thực hiện thao tác.